SAST, DAST, SCA ๋ฐ ์๋ ์ฝ๋ ๊ฒํ ๊ธฐ์ ์ ๋ค๋ฃจ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ณด์ ๊ฐ์ฌ ์ข ํฉ ๊ฐ์ด๋. ๊ธ๋ก๋ฒ ๊ฐ๋ฐํ์ ์ํ ํ๋ ์์ ๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ๋ณด์ ๊ฐ์ฌ: ์ฝ๋ ๋ถ์์ ๋ํ ์ข ํฉ ๊ฐ์ด๋
๋์งํธ ํ๊ฒฝ์์ ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ช ์ค์๋ถํ ๊ณต์ฉ์ด์ ๋๋ค. ๊ฑฐ์ ๋ชจ๋ ์น์ฌ์ดํธ์ ๋์ ํ๋ก ํธ์๋๋ฅผ ๊ตฌ๋ํ๊ณ , Node.js๋ก ๊ฐ๋ ฅํ ๋ฐฑ์๋ ์๋น์ค๋ฅผ ๊ตฌ์ถํ๋ฉฐ, ํฌ๋ก์คํ๋ซํผ ๋ชจ๋ฐ์ผ ๋ฐ ๋ฐ์คํฌํฑ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค๊ณ , ์ฌ์ง์ด ์ฌ๋ฌผ ์ธํฐ๋ท(IoT) ๋ถ์ผ๊น์ง ์ง์ถํ๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฌํ ๋ณดํธ์ฑ์ ์ ์์ ์ธ ๊ณต๊ฒฉ์๋ค์๊ฒ ๋ฐฉ๋ํ๊ณ ๋งค๋ ฅ์ ์ธ ๊ณต๊ฒฉ ํ๋ฉด์ ๋ง๋ค์ด๋ ๋๋ค. ์ ์ธ๊ณ ๊ฐ๋ฐ์์ ์กฐ์ง์ด ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ํ ์์กด๋๊ฐ ๋์์ง์ ๋ฐ๋ผ, ๋ ์ด์ ์ฌํ ๋์์ ์ธ ๋ณด์ ๋ฐฉ์์ผ๋ก๋ ์ถฉ๋ถํ์ง ์์ต๋๋ค. ์ ์ ์ ์ด๊ณ ์ฌ์ธต์ ์ธ ๋ณด์ ๊ฐ์ฌ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ์๋ช ์ฃผ๊ธฐ(SDLC)์ ํ์์ ์ธ ๊ธฐ๋ฅ์ด ๋์์ต๋๋ค.
์ด ๊ฐ์ด๋๋ ์ฒด๊ณ์ ์ธ ์ฝ๋ ๋ถ์์ ํตํ ์ทจ์ฝ์ ํ์ง๋ผ๋ ์ค์ํ ์ค๋ฌด์ ์ด์ ์ ๋ง์ถฐ ์๋ฐ์คํฌ๋ฆฝํธ ๋ณด์ ๊ฐ์ฌ์ ๋ํ ๊ธ๋ก๋ฒ ๊ด์ ์ ์ ๊ณตํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ ์ธ๊ณ ๊ฐ๋ฐํ์ด ๋ ํ๋ณต๋ ฅ ์๊ณ , ์์ ํ๋ฉฐ, ์ ๋ขฐํ ์ ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ ์ ์๋๋ก ์ง์ํ๋ ๋ฐฉ๋ฒ๋ก , ๋๊ตฌ ๋ฐ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ํ๊ตฌํ ๊ฒ์ ๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ์ํ ํ๊ฒฝ ์ดํดํ๊ธฐ
์๋ฐ์คํฌ๋ฆฝํธ์ ๋์ ์ธ ํน์ฑ๊ณผ ์ฌ์ฉ์ ๋ธ๋ผ์ฐ์ ๋ถํฐ ์๋ฒ์ ์ด๋ฅด๊ธฐ๊น์ง ๋ค์ํ ํ๊ฒฝ์์์ ์คํ์ ๋ ํนํ ๋ณด์ ๊ณผ์ ๋ฅผ ์ผ๊ธฐํฉ๋๋ค. ์ด๋ฌํ ์ผ๋ฐ์ ์ธ ์ํ์ ์ดํดํ๋ ๊ฒ์ด ํจ๊ณผ์ ์ธ ๊ฐ์ฌ๋ฅผ ํฅํ ์ฒซ๊ฑธ์์ ๋๋ค. ์ด๋ค ์ค ๋ค์๋ ์ธ๊ณ์ ์ผ๋ก ์ธ์ ๋ฐ๋ OWASP Top 10๊ณผ ์ผ์นํ์ง๋ง, ์๋ฐ์คํฌ๋ฆฝํธ๋ง์ ๋ ํนํ ํน์ง์ ๊ฐ์ง๋๋ค.
- ํฌ๋ก์ค ์ฌ์ดํธ ์คํฌ๋ฆฝํ (XSS): ๊ณ ์ง์ ์ธ ์ํ์ ๋๋ค. XSS๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ ์ ํ ๊ฒ์ฆ์ด๋ ์ด์ค์ผ์ดํ ์์ด ์ ๋ขฐํ ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ ํ์ด์ง์ ํฌํจํ ๋ ๋ฐ์ํฉ๋๋ค. ์ฑ๊ณต์ ์ธ XSS ๊ณต๊ฒฉ์ ๊ณต๊ฒฉ์๊ฐ ํผํด์์ ๋ธ๋ผ์ฐ์ ์์ ์ ์ฑ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๊ฒ ํ์ฌ ์ธ์ ํ์ด์ฌํน, ๋ฐ์ดํฐ ํ์ทจ ๋๋ ์น์ฌ์ดํธ ๋ณ์กฐ๋ก ์ด์ด์ง ์ ์์ต๋๋ค. ์ด๋ React, Angular, ๋๋ Vue์ ๊ฐ์ ํ๋ ์์ํฌ๋ก ๊ตฌ์ถ๋ ๋จ์ผ ํ์ด์ง ์ ํ๋ฆฌ์ผ์ด์ (SPA)์์ ํนํ ์ค์ํฉ๋๋ค.
- ์ธ์ ์
๊ณต๊ฒฉ: SQL ์ธ์ ์
์ ์ ์๋ ค์ ธ ์์ง๋ง, Node.js ์ํ๊ณ๋ ๋ ๊ด๋ฒ์ํ ์ธ์ ์
๊ฒฐํจ์ ์ทจ์ฝํฉ๋๋ค. ์ฌ๊ธฐ์๋ NoSQL ์ธ์ ์
(์: MongoDB ๋์), OS ๋ช
๋ น์ด ์ธ์ ์
(์:
child_process.exec์ ๊ฐ์ ํจ์๋ฅผ ํตํด), ๊ทธ๋ฆฌ๊ณ ์๋ฒ ์ธก ๋ ๋๋ง ์์ง์ ํ ํ๋ฆฟ ์ธ์ ์ ์ด ํฌํจ๋ฉ๋๋ค. - ์ทจ์ฝํ๊ณ ์ค๋๋ ๊ตฌ์ฑ ์์: ํ๋์ ์๋ฐ์คํฌ๋ฆฝํธ ์ ํ๋ฆฌ์ผ์ด์ ์ npm๊ณผ ๊ฐ์ ๋ ์ง์คํธ๋ฆฌ์์ ๊ฐ์ ธ์จ ์๋ง์ ์คํ์์ค ํจํค์ง์ ์งํฉ์ฒด์ ๋๋ค. ์ด ๋ฐฉ๋ํ ๊ณต๊ธ๋ง์ ์๋ ๋จ ํ๋์ ์ทจ์ฝํ ์์กด์ฑ์ด ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ๋กญ๊ฒ ํ ์ ์์ต๋๋ค. ์ด๊ฒ์ ์ค๋๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ธ๊ณ์์ ๊ฐ์ฅ ํฐ ์ํ ์ค ํ๋๋ผ๊ณ ํ ์ ์์ต๋๋ค.
- ์๋ชป๋ ์ธ์ฆ ๋ฐ ์ธ์ ๊ด๋ฆฌ: ์ฌ์ฉ์ ์ธ์ ์ ๋ถ์ ์ ํ ์ฒ๋ฆฌ, ์ทจ์ฝํ ์ํธ ์ ์ฑ , ๋๋ ์์ ํ์ง ์์ JSON ์น ํ ํฐ(JWT) ๊ตฌํ์ ๊ณต๊ฒฉ์๊ฐ ํฉ๋ฒ์ ์ธ ์ฌ์ฉ์๋ฅผ ์ฌ์นญํ๋๋ก ํ์ฉํ ์ ์์ต๋๋ค.
- ์์ ํ์ง ์์ ์ญ์ง๋ ฌํ: ์ ์ ํ ํ์ธ ์์ด ์ฌ์ฉ์๊ฐ ์ ์ดํ๋ ๋ฐ์ดํฐ๋ฅผ ์ญ์ง๋ ฌํํ๋ฉด ์๊ฒฉ ์ฝ๋ ์คํ(RCE)์ผ๋ก ์ด์ด์ง ์ ์์ผ๋ฉฐ, ์ด๋ ๋ณต์กํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ฒ๋ฆฌํ๋ Node.js ์ ํ๋ฆฌ์ผ์ด์ ์์ ์์ฃผ ๋ฐ๊ฒฌ๋๋ ์ฌ๊ฐํ ์ทจ์ฝ์ ์ ๋๋ค.
- ๋ณด์ ์ค์ ์ค๋ฅ: ์ด ๊ด๋ฒ์ํ ๋ฒ์ฃผ์๋ ํ๋ก๋์ ํ๊ฒฝ์์ ๋๋ฒ๊น ๋ชจ๋๋ฅผ ํ์ฑํ ์ํ๋ก ๋๋ ๊ฒ๋ถํฐ ์๋ชป ๊ตฌ์ฑ๋ ํด๋ผ์ฐ๋ ์๋น์ค ๊ถํ, ๋ถ์ ์ ํ HTTP ํค๋, ๋๋ ๋ฏผ๊ฐํ ์์คํ ์ ๋ณด๋ฅผ ์ ์ถํ๋ ์ฅํฉํ ์ค๋ฅ ๋ฉ์์ง๊น์ง ๋ชจ๋ ๊ฒ์ด ํฌํจ๋ฉ๋๋ค.
๋ณด์ ๊ฐ์ฌ์ ํต์ฌ: ์ฝ๋ ๋ถ์ ๋ฐฉ๋ฒ๋ก
์ฝ๋ ๋ถ์์ ๋ณด์ ์ทจ์ฝ์ ์ ์ฐพ๊ธฐ ์ํด ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ค ์ฝ๋๋ฅผ ๊ฒ์ฌํ๋ ๊ณผ์ ์ ๋๋ค. ๊ฐ๊ฐ ๋๋ ทํ ์ฅ๋จ์ ์ ๊ฐ์ง ์ฌ๋ฌ ๋ฐฉ๋ฒ๋ก ์ด ์์ผ๋ฉฐ, ์ฑ์ํ ๋ณด์ ์ ๋ต์ ํฌ๊ด์ ์ธ ๋ฒ์๋ฅผ ์ํด ์ด๋ค์ ๊ฒฐํฉํฉ๋๋ค.
์ ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ณด์ ํ ์คํ (SAST): 'ํ์ดํธ๋ฐ์ค' ์ ๊ทผ ๋ฐฉ์
์ ์: SAST๋ ์ข ์ข ํ์ดํธ๋ฐ์ค ํ ์คํ ์ด๋ผ๊ณ ๋ถ๋ฆฌ๋ฉฐ, ์ฝ๋๋ฅผ ์คํํ์ง ์๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ค ์ฝ๋, ๋ฐ์ดํธ ์ฝ๋ ๋๋ ๋ฐ์ด๋๋ฆฌ๋ฅผ ๋ถ์ํ์ฌ ๋ณด์ ์ทจ์ฝ์ ์ ์ฐพ์ต๋๋ค. ์ด๋ ๋ณด์ ์ ๋ฌธ๊ฐ๊ฐ ์๋ ค์ง ๋น๋ณด์ ํจํด์ ๊ธฐ๋ฐ์ผ๋ก ์ ์ฌ์ ์ธ ๊ฒฐํจ์ ์ฐพ๊ธฐ ์ํด ์ฝ๋์ ๋ชจ๋ ์ค์ ์ฝ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค.
์๋ ๋ฐฉ์: SAST ๋๊ตฌ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋์ ๋ชจ๋ธ์ ๊ตฌ์ถํ์ฌ ์ ์ด ํ๋ฆ(์์ ์์)๊ณผ ๋ฐ์ดํฐ ํ๋ฆ(๋ฐ์ดํฐ ์ด๋ ๋ฐ ๋ณํ ๋ฐฉ์)์ ๋ถ์ํฉ๋๋ค. ์ด ๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ์์ฒญ์์ ์จ ์ค์ผ๋ ๋ฐ์ดํฐ๊ฐ ์ ์ ๊ณผ์ ์์ด ์ํํ ํจ์('sink')๋ก ํ๋ฌ ๋ค์ด๊ฐ๋ ๊ฒ๊ณผ ๊ฐ์ด ์๋ ค์ง ์ทจ์ฝ์ ์ ํ๊ณผ ์ผ์นํ๋ ํจํด์ ์๋ณํฉ๋๋ค.
์ฅ์ :
- ์กฐ๊ธฐ ํ์ง: ๊ฐ๋ฐ์์ IDE ๋ฐ CI/CD ํ์ดํ๋ผ์ธ์ ์ง์ ํตํฉ๋ ์ ์์ด, ๊ฐ๋ฐ์ ๊ฐ์ฅ ์ด๋ฅด๊ณ ๋น์ฉ์ด ์ ๊ฒ ๋๋ ๋จ๊ณ์์ ์ทจ์ฝ์ ์ ๋ฐ๊ฒฌํ ์ ์์ต๋๋ค ('Shift-Left Security'๋ผ๋ ๊ฐ๋ ).
- ์ฝ๋ ์์ค์ ์ ํ์ฑ: ์ ์ฌ์ ๊ฒฐํจ์ ์ ํํ ํ์ผ ๋ฐ ์ค ๋ฒํธ๋ฅผ ์ง์ ํ์ฌ ๊ฐ๋ฐ์๊ฐ ์์ ํ๊ธฐ ์ฝ๊ฒ ๋ง๋ญ๋๋ค.
- ์ ์ฒด ์ฝ๋ ์ปค๋ฒ๋ฆฌ์ง: ์ด๋ก ์ ์ผ๋ก SAST๋ ๋ผ์ด๋ธ ํ ์คํธ ์ค์ ์ฝ๊ฒ ๋๋ฌํ ์ ์๋ ๋ถ๋ถ์ ํฌํจํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์์ค ์ฝ๋์ 100%๋ฅผ ๋ถ์ํ ์ ์์ต๋๋ค.
๋จ์ :
- ์คํ(False Positives): SAST ๋๊ตฌ๋ ๋ฐํ์ ์ปจํ ์คํธ๊ฐ ๋ถ์กฑํ๊ธฐ ๋๋ฌธ์ ๋ง์ ์์ ์คํ์ ์์ฑํ๋ ๊ฒ์ผ๋ก ์ ๋ช ์ด ๋์ต๋๋ค. ๊ธฐ์ ์ ์ผ๋ก๋ ์ทจ์ฝํ์ง๋ง ๋๋ฌํ ์ ์๊ฑฐ๋ ๋ค๋ฅธ ์ ์ด์ ์ํด ์ํ๋๋ ์ฝ๋๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค.
- ํ๊ฒฝ ์ธ์ ๋ถ๊ฐ: ๋ฐฐํฌ๋ ํ๊ฒฝ์๋ง ์กด์ฌํ๋ ๋ฐํ์ ๊ตฌ์ฑ ๋ฌธ์ , ์๋ฒ ์ค์ ์ค๋ฅ ๋๋ ์๋ํํฐ ๊ตฌ์ฑ ์์์ ์ทจ์ฝ์ ์ ํ์งํ ์ ์์ต๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ํ ์ธ๊ธฐ ์๋ ๊ธ๋ก๋ฒ SAST ๋๊ตฌ:
- SonarQube: ์ฝ๋ ํ์ง์ ์ง์์ ์ธ ๊ฒ์ฌ๋ฅผ ์ํ ๋๋ฆฌ ์ฑํ๋ ์คํ์์ค ํ๋ซํผ์ผ๋ก, ๋ณด์์ ์ํ ๊ฐ๋ ฅํ ์ ์ ๋ถ์ ์์ง์ ํฌํจํฉ๋๋ค.
- Snyk Code: ์๋งจํฑ, AI ๊ธฐ๋ฐ ์์ง์ ์ฌ์ฉํ์ฌ ์ ์ ์คํ์ผ๋ก ๋ณต์กํ ์ทจ์ฝ์ ์ ์ฐพ๋ ๊ฐ๋ฐ์ ์ค์ฌ์ SAST ๋๊ตฌ์ ๋๋ค.
- ESLint ๋ฐ ๋ณด์ ํ๋ฌ๊ทธ์ธ: ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ก์ ํธ์ ๊ธฐ๋ณธ ๋๊ตฌ์
๋๋ค.
eslint-plugin-security๋๋eslint-plugin-no-unsanitized์ ๊ฐ์ ํ๋ฌ๊ทธ์ธ์ ์ถ๊ฐํ์ฌ ๋ฆฐํฐ๋ฅผ ๊ธฐ๋ณธ์ ์ธ SAST ๋๊ตฌ๋ก ์ ํํ ์ ์์ต๋๋ค. - GitHub CodeQL: ์ฝ๋๋ฅผ ๋ฐ์ดํฐ์ฒ๋ผ ์ฟผ๋ฆฌํ ์ ์๊ฒ ํด์ฃผ๋ ๊ฐ๋ ฅํ ์๋งจํฑ ์ฝ๋ ๋ถ์ ์์ง์ผ๋ก, ๋ง์ถคํ์ ๋งค์ฐ ๊ตฌ์ฒด์ ์ธ ๋ณด์ ๊ฒ์ฌ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
๋์ ์ ํ๋ฆฌ์ผ์ด์ ๋ณด์ ํ ์คํ (DAST): '๋ธ๋๋ฐ์ค' ์ ๊ทผ ๋ฐฉ์
์ ์: DAST, ์ฆ ๋ธ๋๋ฐ์ค ํ ์คํ ์ ๋ด๋ถ ์์ค ์ฝ๋์ ๋ํ ์ง์ ์์ด ์ธ๋ถ์์ ์คํ ์ค์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ถ์ํฉ๋๋ค. ์ค์ ๊ณต๊ฒฉ์์ฒ๋ผ ํ๋ํ๋ฉฐ ๋ค์ํ ์ ์ฑ ์ ๋ ฅ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฃผ์ ํ๊ณ ์๋ต์ ๋ถ์ํ์ฌ ์ทจ์ฝ์ ์ ์๋ณํฉ๋๋ค.
์๋ ๋ฐฉ์: DAST ์ค์บ๋๋ ๋จผ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํฌ๋กค๋งํ์ฌ ๋ชจ๋ ํ์ด์ง, ์์, API ์๋ํฌ์ธํธ๋ฅผ ๋งคํํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ด๋ฌํ ๋์์ ๋ํด ์กฐ์๋ ํ์ด๋ก๋๋ฅผ ๋ณด๋ด๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์์ ๊ด์ฐฐํจ์ผ๋ก์จ XSS, SQL ์ธ์ ์ , ๊ฒฝ๋ก ํ์๊ณผ ๊ฐ์ ์ทจ์ฝ์ ์ ์ ์ฉํ๋ ค๋ ์๋ํ๋ ํ ์คํธ ๋ฐฐํฐ๋ฆฌ๋ฅผ ์คํํฉ๋๋ค.
์ฅ์ :
- ๋ฎ์ ์คํ๋ฅ : DAST๋ ์คํ ์ค์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ ์คํธํ๋ฏ๋ก, ์ทจ์ฝ์ ์ ๋ฐ๊ฒฌํ๊ณ ์ฑ๊ณต์ ์ผ๋ก ์ ์ฉํ๋ค๋ฉด ๊ทธ ๋ฐ๊ฒฌ์ ๊ฑฐ์ ํ์คํ๊ฒ ์งํ(True Positive)์ ๋๋ค.
- ํ๊ฒฝ ์ธ์: SAST๊ฐ ํ ์ ์๋ ๋ฐํ์ ๋ฐ ๊ตฌ์ฑ ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ ์ ์์ต๋๋ค. ์๋ฒ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ ๊ธฐํ ํตํฉ ์๋น์ค๋ฅผ ํฌํจํ ์์ ํ ๋ฐฐํฌ๋ ์ ํ๋ฆฌ์ผ์ด์ ์คํ์ ํ ์คํธํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
- ์ธ์ด์ ๊ตฌ์ ๋ฐ์ง ์์: ์ ํ๋ฆฌ์ผ์ด์ ์ด ์๋ฐ์คํฌ๋ฆฝํธ, ํ์ด์ฌ, ๋๋ ์๋ฐ๋ก ์์ฑ๋์๋์ง๋ ์ค์ํ์ง ์์ต๋๋ค. DAST๋ HTTP๋ฅผ ํตํด ์ํธ ์์ฉํ๋ฏ๋ก ๋ณดํธ์ ์ผ๋ก ์ ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
๋จ์ :
- ์ฝ๋ ๊ฐ์์ฑ ๋ถ์ฌ: ์ทจ์ฝ์ ์ด ๋ฐ๊ฒฌ๋์์ ๋, DAST๋ ์ด๋ค ์ฝ๋ ๋ผ์ธ์ด ์์ธ์ธ์ง ์๋ ค์ค ์ ์์ด ์์ ์์ ์ ์ง์ฐ์ํฌ ์ ์์ต๋๋ค.
- ์ ํ๋ ์ปค๋ฒ๋ฆฌ์ง: ๋ณผ ์ ์๋ ๊ฒ๋ง ํ ์คํธํ ์ ์์ต๋๋ค. ํน์ ์ฌ์ฉ์ ์ฌ์ ์ด๋ ๋น์ฆ๋์ค ๋ก์ง ๋ค์ ์จ๊ฒจ์ง ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณต์กํ ๋ถ๋ถ์ ๋์น ์ ์์ต๋๋ค.
- SDLC ํ๋ฐ ๋จ๊ณ: DAST๋ ์ผ๋ฐ์ ์ผ๋ก QA ๋๋ ์คํ ์ด์ง ํ๊ฒฝ์์ ์ฌ์ฉ๋๋ฏ๋ก, ์ทจ์ฝ์ ์ด ๊ฐ๋ฐ ๊ณผ์ ์์ ํจ์ฌ ๋ฆ๊ฒ ๋ฐ๊ฒฌ๋์ด ์์ ๋น์ฉ์ด ๋ ๋ง์ด ๋ญ๋๋ค.
์ธ๊ธฐ ์๋ ๊ธ๋ก๋ฒ DAST ๋๊ตฌ:
- OWASP ZAP (Zed Attack Proxy): OWASP๊ฐ ์ ์ง ๊ด๋ฆฌํ๋ ์ธ๊ณ ์ต๊ณ ์ ๋ฌด๋ฃ ์คํ์์ค DAST ๋๊ตฌ์ ๋๋ค. ๋งค์ฐ ์ ์ฐํ๋ฉฐ ๋ณด์ ์ ๋ฌธ๊ฐ์ ๊ฐ๋ฐ์ ๋ชจ๋๊ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- Burp Suite: ์ ๋ฌธ ์นจํฌ ํ ์คํฐ๋ค์ด ์ ํํ๋ ๋๊ตฌ๋ก, ๋ฌด๋ฃ ์ปค๋ฎค๋ํฐ ์๋์ ๊ณผ ๊ด๋ฒ์ํ ์๋ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๊ฐ๋ ฅํ ํ๋กํ์ ๋ ๋ฒ์ ์ด ์์ต๋๋ค.
์ํํธ์จ์ด ๊ตฌ์ฑ ๋ถ์ (SCA): ๊ณต๊ธ๋ง ๋ณด์
์ ์: SCA๋ ์ฝ๋๋ฒ ์ด์ค ๋ด์ ์คํ์์ค ๋ฐ ์๋ํํฐ ๊ตฌ์ฑ ์์๋ฅผ ์๋ณํ๋ ๋ฐ ๋ ์ ์ ์ผ๋ก ์ด์ ์ ๋ง์ถ ํน์ํ ํํ์ ๋ถ์์ ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ด๋ฌํ ๊ตฌ์ฑ ์์๋ฅผ CVE(Common Vulnerabilities and Exposures) ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฐ์ ์๋ ค์ง ์ทจ์ฝ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋์กฐํ์ฌ ํ์ธํฉ๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์ ์ ์ค์ํ๊ฐ: `npm` ์ํ๊ณ์๋ 2๋ฐฑ๋ง ๊ฐ๊ฐ ๋๋ ํจํค์ง๊ฐ ์์ต๋๋ค. ๋ชจ๋ ์์กด์ฑ๊ณผ ๊ทธ ํ์ ์์กด์ฑ์ ์๋์ผ๋ก ๊ฒ์ฆํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค. SCA ๋๊ตฌ๋ ์ด ํ๋ก์ธ์ค๋ฅผ ์๋ํํ์ฌ ์ํํธ์จ์ด ๊ณต๊ธ๋ง์ ๋ํ ์ค์ํ ๊ฐ์์ฑ์ ์ ๊ณตํฉ๋๋ค.
์ธ๊ธฐ ์๋ SCA ๋๊ตฌ:
- npm audit / yarn audit: ํ๋ก์ ํธ์ `package-lock.json` ๋๋ `yarn.lock` ํ์ผ์ ์ค์บํ์ฌ ์๋ ค์ง ์ทจ์ฝ์ ์ ๋น ๋ฅด๊ฒ ํ์ธํ ์ ์๋ ๋ด์ฅ ๋ช ๋ น์ด์ ๋๋ค.
- Snyk Open Source: SCA ์์ฅ์ ์ ๋ ์ฃผ์๋ก, ์ฌ์ธต ๋ถ์, ์์ ์กฐ์ธ(์: ์ทจ์ฝ์ ์ ํจ์นํ๊ธฐ ์ํ ์ต์ ๋ฒ์ ์ ๊ทธ๋ ์ด๋ ์ ์) ๋ฐ ๊ฐ๋ฐ์ ์ํฌํ๋ก์ฐ์์ ํตํฉ์ ์ ๊ณตํฉ๋๋ค.
- GitHub Dependabot: GitHub์ ํตํฉ๋ ๊ธฐ๋ฅ์ผ๋ก, ๋ฆฌํฌ์งํ ๋ฆฌ์์ ์ทจ์ฝํ ์์กด์ฑ์ ์๋์ผ๋ก ์ค์บํ๊ณ ์ด๋ฅผ ์ ๋ฐ์ดํธํ๊ธฐ ์ํ ํ ๋ฆฌํ์คํธ๋ฅผ ์์ฑํ ์๋ ์์ต๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋ ๊ฐ์ฌ๋ฅผ ์ํํ๊ธฐ ์ํ ์ค์ฉ ๊ฐ์ด๋
์ฒ ์ ํ ๋ณด์ ๊ฐ์ฌ๋ ์๋ํ๋ ์ค์บ๋๊ณผ ์ธ๊ฐ์ ์ง๋ฅ์ ๊ฒฐํฉํฉ๋๋ค. ๋ค์์ ์ ์ธ๊ณ ์ด๋์์๋ ๋ชจ๋ ๊ท๋ชจ์ ํ๋ก์ ํธ์ ์ ์ฉํ ์ ์๋ ๋จ๊ณ๋ณ ํ๋ ์์ํฌ์ ๋๋ค.
1๋จ๊ณ: ๋ฒ์ ๋ฐ ์ํ ๋ชจ๋ธ ์ ์
๋จ์ผ ํ ์คํธ๋ฅผ ์์ฑํ๊ฑฐ๋ ์ค์บ์ ์คํํ๊ธฐ ์ ์ ๋ฒ์๋ฅผ ์ ์ํด์ผ ํฉ๋๋ค. ๋จ์ผ ๋ง์ดํฌ๋ก์๋น์ค, ํ๋ก ํธ์๋ ๊ตฌ์ฑ ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋๋ ๋ชจ๋๋ฆฌ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ์ฌํ๊ณ ์์ต๋๊น? ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ณดํธํ๋ ๊ฐ์ฅ ์ค์ํ ์์ฐ์ ๋ฌด์์ ๋๊น? ์ ์ฌ์ ์ธ ๊ณต๊ฒฉ์๋ ๋๊ตฌ์ ๋๊น? ์ด๋ฌํ ์ง๋ฌธ์ ๋ตํ๋ฉด ์ํ ๋ชจ๋ธ์ ๋ง๋๋ ๋ฐ ๋์์ด ๋๋ฉฐ, ์ด๋ ๋น์ฆ๋์ค์ ์ฌ์ฉ์์ ๋ํ ๊ฐ์ฅ ์ค์ํ ์ํ์ ๊ฐ์ฌ ๋ ธ๋ ฅ์ ์ฐ์ ์์์ ๋๊ฒ ํฉ๋๋ค.
2๋จ๊ณ: CI/CD ํ์ดํ๋ผ์ธ์์ SAST ๋ฐ SCA๋ก ์๋ํ
ํ๋ ๊ฐ์ฌ ํ๋ก์ธ์ค์ ๊ธฐ์ด๋ ์๋ํ์ ๋๋ค. SAST ๋ฐ SCA ๋๊ตฌ๋ฅผ ์ง์์ ํตํฉ/์ง์์ ๋ฐฐํฌ(CI/CD) ํ์ดํ๋ผ์ธ์ ์ง์ ํตํฉํ์ญ์์ค.
- ๋ชจ๋ ์ปค๋ฐ ์: ๊ฒฝ๋ ๋ฆฐํฐ์ ๋น ๋ฅธ SCA ์ค์บ(์: `npm audit --audit-level=critical`)์ ์คํํ์ฌ ๊ฐ๋ฐ์์๊ฒ ์ฆ๊ฐ์ ์ธ ํผ๋๋ฐฑ์ ์ ๊ณตํฉ๋๋ค.
- ๋ชจ๋ ํ/๋จธ์ง ๋ฆฌํ์คํธ ์: ๋ ํฌ๊ด์ ์ธ SAST ์ค์บ์ ์คํํฉ๋๋ค. ์๋กญ๊ณ ์ฌ๊ฐ๋๊ฐ ๋์ ์ทจ์ฝ์ ์ด ๋์ ๋๋ฉด ๋จธ์ง๋ฅผ ์ฐจ๋จํ๋๋ก ํ์ดํ๋ผ์ธ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
- ์ฃผ๊ธฐ์ ์ผ๋ก: ์คํ ์ด์ง ํ๊ฒฝ์ ๋ํด ์ฌ์ธต์ ์ธ ์ ์ฒด ์ฝ๋๋ฒ ์ด์ค SAST ์ค์บ ๋ฐ DAST ์ค์บ์ ์์ฝํ์ฌ ๋ ๋ณต์กํ ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํฉ๋๋ค.
์ด ์๋ํ๋ ๊ธฐ์ค์ ์ '๋ฎ๊ฒ ๋งค๋ฌ๋ฆฐ ๊ณผ์ผ(์ฝ๊ฒ ๋ฐ๊ฒฌ๋๋ ๋ฌธ์ )'์ ํฌ์ฐฉํ๊ณ ์ผ๊ด๋ ๋ณด์ ์ํ๋ฅผ ๋ณด์ฅํ์ฌ, ๊ฐ์ฌ ์ธ๋ ฅ์ด ๋ ๋ณต์กํ ๋ฌธ์ ์ ์ง์คํ ์ ์๋๋ก ํด์ค๋๋ค.
3๋จ๊ณ: ์๋ ์ฝ๋ ๊ฒํ ์ํ
์๋ํ๋ ๋๊ตฌ๋ ๊ฐ๋ ฅํ์ง๋ง ๋น์ฆ๋์ค ์ปจํ ์คํธ๋ฅผ ์ดํดํ๊ฑฐ๋ ๋ณต์กํ ๋ก์ง ๊ฒฐํจ์ ์๋ณํ ์๋ ์์ต๋๋ค. ๋ณด์ ์์์ด ์๋ ๊ฐ๋ฐ์๋ ์ ๋ด ๋ณด์ ์์ง๋์ด๊ฐ ์ํํ๋ ์๋ ์ฝ๋ ๊ฒํ ๋ ๋์ฒดํ ์ ์์ต๋๋ค. ๋ค์์ ์ค์ํ ์์ญ์ ์ง์คํ์ญ์์ค:
1. ๋ฐ์ดํฐ ํ๋ฆ ๋ฐ ์ ๋ ฅ ์ ํจ์ฑ ๊ฒ์ฌ:
HTTP ์์ฒญ, ์ฌ์ฉ์ ์์, ๋ฐ์ดํฐ๋ฒ ์ด์ค, API ๋ฑ ๋ชจ๋ ์ธ๋ถ ์ ๋ ฅ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํตํด ์ด๋ํ๋ ๊ณผ์ ์ ์ถ์ ํ์ญ์์ค. ์ด๋ฅผ '์ค์ผ ๋ถ์(taint analysis)'์ด๋ผ๊ณ ํฉ๋๋ค. ์ด '์ค์ผ๋' ๋ฐ์ดํฐ๊ฐ ์ฌ์ฉ๋๋ ๋ชจ๋ ์ง์ ์์ ๋ค์๊ณผ ๊ฐ์ด ์ง๋ฌธํ์ญ์์ค: "์ด ๋ฐ์ดํฐ๋ ์ด ํน์ ์ปจํ ์คํธ์ ๋ง๊ฒ ์ ์ ํ ๊ฒ์ฆ, ์ ์ ๋๋ ์ธ์ฝ๋ฉ๋์๋๊ฐ?"
์์ (Node.js ๋ช ๋ น์ด ์ธ์ ์ ):
์ทจ์ฝํ ์ฝ๋:
const { exec } = require('child_process');
app.get('/api/files', (req, res) => {
const directory = req.query.dir; // User-controlled input
exec(`ls -l ${directory}`, (error, stdout, stderr) => {
// ... send response
});
});
์๋ ๊ฒํ ์ ์ด ์ฝ๋๋ ์ฆ์ ๋ฌธ์ ๋ก ์ง์ ๋ ๊ฒ์ ๋๋ค. ๊ณต๊ฒฉ์๋ `.; rm -rf /`์ ๊ฐ์ `dir` ๊ฐ์ ์ ๊ณตํ์ฌ ํ๊ดด์ ์ธ ๋ช ๋ น์ ์คํํ ์ ์์ต๋๋ค. SAST ๋๊ตฌ๋ ์ด๋ฅผ ํ์งํด์ผ ํฉ๋๋ค. ํด๊ฒฐ์ฑ ์ ์ง์ ์ ์ธ ๋ช ๋ น์ด ๋ฌธ์์ด ์ฐ๊ฒฐ์ ํผํ๊ณ `execFile`๊ณผ ๊ฐ์ด ๋งค๊ฐ๋ณ์ํ๋ ์ธ์๋ฅผ ์ฌ์ฉํ๋ ์์ ํ ํจ์๋ฅผ ์ด์ฉํ๋ ๊ฒ์ ๋๋ค.
2. ์ธ์ฆ ๋ฐ ์ธ๊ฐ ๋ก์ง:
์๋ํ๋ ๋๊ตฌ๋ ์ธ๊ฐ ๋ก์ง์ด ์ฌ๋ฐ๋ฅธ์ง ์๋ ค์ค ์ ์์ต๋๋ค. ๋ชจ๋ ๋ณดํธ๋ ์๋ํฌ์ธํธ์ ํจ์๋ฅผ ์๋์ผ๋ก ๊ฒํ ํ์ญ์์ค. ๋ค์๊ณผ ๊ฐ์ ์ง๋ฌธ์ ํ์ญ์์ค:
- ๋ชจ๋ ๋ฏผ๊ฐํ ์์ ์ ๋ํด ์๋ฒ์์ ์ฌ์ฉ์์ ์ญํ ๊ณผ ์ ์์ด ํ์ธ๋๋๊ฐ? ์ ๋๋ก ํด๋ผ์ด์ธํธ ์ธก ํ์ธ์ ์ ๋ขฐํ์ง ๋ง์ญ์์ค.
- JWT๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ๊ฒ์ฆ๋๊ณ ์๋๊ฐ (์๋ช , ์๊ณ ๋ฆฌ์ฆ, ๋ง๋ฃ ์๊ฐ ํ์ธ)?
- ์ธ์ ๊ด๋ฆฌ๊ฐ ์์ ํ๊ฐ (์: ์์ ํ HttpOnly ์ฟ ํค ์ฌ์ฉ)?
3. ๋น์ฆ๋์ค ๋ก์ง ๊ฒฐํจ:
์ด ๋ถ๋ถ์์ ์ธ๊ฐ์ ์ ๋ฌธ์ฑ์ด ๋น์ ๋ฐํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋๋ ๊ธฐ๋ฅ์ ์ ์ฉํ ๋ฐฉ๋ฒ์ ์ฐพ์ผ์ญ์์ค. ์๋ฅผ ๋ค์ด, ์ ์์๊ฑฐ๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฉ์๊ฐ ํ ์ธ ์ฟ ํฐ์ ์ฌ๋ฌ ๋ฒ ์ ์ฉํ ์ ์๋๊ฐ? API ์์ฒญ์ ์กฐ์ํ์ฌ ์ฅ๋ฐ๊ตฌ๋์ ๋ด๊ธด ์ํ์ ๊ฐ๊ฒฉ์ ๋ณ๊ฒฝํ ์ ์๋๊ฐ? ์ด๋ฌํ ๊ฒฐํจ์ ๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ณ ์ ํ๋ฉฐ ํ์ค ๋ณด์ ์ค์บ๋์๋ ๋ณด์ด์ง ์์ต๋๋ค.
4. ์ํธํ ๋ฐ ๋น๋ฐ ๊ด๋ฆฌ:
์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ๋์ง ๋ฉด๋ฐํ ์กฐ์ฌํ์ญ์์ค. ์์ค ์ฝ๋์ ํ๋์ฝ๋ฉ๋ API ํค, ๋น๋ฐ๋ฒํธ ๋๋ ์ํธํ ํค๋ฅผ ์ฐพ์ผ์ญ์์ค. ์ฝํ๊ฑฐ๋ ์ค๋๋ ์ํธํ ์๊ณ ๋ฆฌ์ฆ(์: ๋น๋ฐ๋ฒํธ ํด์ฑ์ MD5 ์ฌ์ฉ)์ ์ฌ์ฉ์ ํ์ธํ์ญ์์ค. ๋น๋ฐ ์ ๋ณด๊ฐ ๋ฒ์ ๊ด๋ฆฌ์ ์ปค๋ฐ๋์ง ์๊ณ , ์์ ํ ๋ณผํธ ์์คํ ์ด๋ ํ๊ฒฝ ๋ณ์๋ฅผ ํตํด ๊ด๋ฆฌ๋๋์ง ํ์ธํ์ญ์์ค.
4๋จ๊ณ: ๋ณด๊ณ ๋ฐ ์์
์ฑ๊ณต์ ์ธ ๊ฐ์ฌ๋ ๋ช ํํ๊ณ ์คํ ๊ฐ๋ฅํ ๋ณด๊ณ ์๋ก ๋๋ฉ๋๋ค. ๊ฐ ๋ฐ๊ฒฌ ์ฌํญ์๋ ๋ค์์ด ํฌํจ๋์ด์ผ ํฉ๋๋ค:
- ์ ๋ชฉ: ์ทจ์ฝ์ ์ ๋ํ ๊ฐ๊ฒฐํ ์์ฝ (์: "์ฌ์ฉ์ ํ๋กํ ํ์ด์ง์ ๋ฐ์ฌํ ํฌ๋ก์ค ์ฌ์ดํธ ์คํฌ๋ฆฝํ ").
- ์ค๋ช : ๊ฒฐํจ๊ณผ ์๋ ๋ฐฉ์์ ๋ํ ์์ธํ ์ค๋ช .
- ์ํฅ: ์ทจ์ฝ์ ์ด ์ ์ฉ๋ ๊ฒฝ์ฐ ๋ฐ์ํ ์ ์๋ ์ ์ฌ์ ์ธ ๋น์ฆ๋์ค ๋๋ ์ฌ์ฉ์ ์ํฅ.
- ์ฌ๊ฐ๋: CVSS(Common Vulnerability Scoring System)์ ๊ฐ์ ํ๋ ์์ํฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ํ์คํ๋ ๋ฑ๊ธ (์: ์ฌ๊ฐ, ๋์, ์ค๊ฐ, ๋ฎ์).
- ๊ฐ๋ ์ฆ๋ช (PoC): ์ทจ์ฝ์ ์ ์ฌํํ๊ธฐ ์ํ ๋จ๊ณ๋ณ ์ง์นจ ๋๋ ์คํฌ๋ฆฝํธ.
- ์์ ๊ฐ์ด๋: ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋ช ํํ๊ณ ๊ตฌ์ฒด์ ์ธ ๊ถ์ฅ ์ฌํญ ๋ฐ ์ฝ๋ ์์.
๋ง์ง๋ง ๋จ๊ณ๋ ๊ฐ๋ฐํ๊ณผ ํ๋ ฅํ์ฌ ์ด๋ฌํ ๋ฐ๊ฒฌ ์ฌํญ์ ์ฐ์ ์์๋ฅผ ์ ํ๊ณ ์์ ํ๋ ๊ฒ์ด๋ฉฐ, ๊ทธ ํ์๋ ์์ ์ด ํจ๊ณผ์ ์ธ์ง ํ์ธํ๋ ๊ฒ์ฆ ๋จ๊ณ๊ฐ ์ด์ด์ง๋๋ค.
์ง์์ ์ธ ์๋ฐ์คํฌ๋ฆฝํธ ๋ณด์์ ์ํ ๋ชจ๋ฒ ์ฌ๋ก
์ผํ์ฑ ๊ฐ์ฌ๋ ํน์ ์์ ์ ์ค๋ ์ท์ผ ๋ฟ์ ๋๋ค. ๋์์์ด ์งํํ๋ ์ฝ๋๋ฒ ์ด์ค์์ ๋ณด์์ ์ ์งํ๋ ค๋ฉด ์ด๋ฌํ ๊ดํ์ ํ์ ๋ฌธํ์ ํ๋ก์ธ์ค์ ๋ด์ฌํํด์ผ ํฉ๋๋ค:
- ์ํ์ด ์ฝ๋ฉ ํ์ค ์ฑํ: ์ํ์ด ์ฝ๋ฉ ๊ฐ์ด๋๋ผ์ธ์ ๋ฌธ์ํํ๊ณ ์ํํ์ญ์์ค. ์๋ฅผ ๋ค์ด, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๊ทผ ์ ๋งค๊ฐ๋ณ์ํ๋ ์ฟผ๋ฆฌ ์ฌ์ฉ์ ์๋ฌดํํ๊ณ , `eval()`๊ณผ ๊ฐ์ ์ํํ ํจ์๋ฅผ ๊ธ์งํ๋ฉฐ, XSS์ ๋ํ ์ต์ ํ๋ ์์ํฌ์ ๋ด์ฅ ๋ณดํธ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ญ์์ค.
- ์ฝํ ์ธ ๋ณด์ ์ ์ฑ (CSP) ๊ตฌํ: CSP๋ ๋ธ๋ผ์ฐ์ ์ ์ ๋ขฐํ ์ ์๋ ์ฝํ ์ธ (์คํฌ๋ฆฝํธ, ์คํ์ผ, ์ด๋ฏธ์ง) ์์ค๋ฅผ ์๋ ค์ฃผ๋ ๊ฐ๋ ฅํ ์ฌ์ธต ๋ฐฉ์ด HTTP ์๋ต ํค๋์ ๋๋ค. ์ด๋ ๋ง์ ์ ํ์ XSS ๊ณต๊ฒฉ์ ๋ํ ํจ๊ณผ์ ์ธ ์ํ์ฑ ์ ์ ๊ณตํฉ๋๋ค.
- ์ต์ ๊ถํ์ ์์น: ํ๋ก์ธ์ค, API ํค, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ์๊ฐ ์์ ์ ๊ธฐ๋ฅ์ ์ํํ๋ ๋ฐ ํ์ํ ์ ๋ ์ต์ํ์ ๊ถํ๋ง ๊ฐ๋๋ก ํ์ญ์์ค.
- ์ ๊ธฐ์ ์ธ ๋ณด์ ๊ต์ก ์ ๊ณต: ์ธ์ ์์๋ ์ข ์ข ๊ฐ์ฅ ์ฝํ ์ฐ๊ฒฐ ๊ณ ๋ฆฌ์ ๋๋ค. ๊ฐ๋ฐ์๋ค์๊ฒ ์ผ๋ฐ์ ์ธ ์ทจ์ฝ์ , ์ํ์ด ์ฝ๋ฉ ๊ธฐ์ , ๊ทธ๋ฆฌ๊ณ ์๋ฐ์คํฌ๋ฆฝํธ ์ํ๊ณ์ ํน์ ํ ์๋ก์ด ์ํ์ ๋ํด ์ ๊ธฐ์ ์ผ๋ก ๊ต์กํ์ญ์์ค. ์ด๋ ๋ชจ๋ ๊ธ๋ก๋ฒ ๊ธฐ์ ์กฐ์ง์๊ฒ ์ค์ํ ํฌ์์ ๋๋ค.
๊ฒฐ๋ก : ์ง์์ ์ธ ํ๋ก์ธ์ค๋ก์์ ๋ณด์
์๋ฐ์คํฌ๋ฆฝํธ ๋ณด์ ๊ฐ์ฌ๋ ๋จ์ผ ์ด๋ฒคํธ๊ฐ ์๋๋ผ ์ง์์ ์ด๊ณ ๋ค์ธต์ ์ธ ํ๋ก์ธ์ค์ ๋๋ค. ์ ๋ก ์๋ ์๋๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ด ๊ตฌ์ถ๋๊ณ ๋ฐฐํฌ๋๋ ์ธ์์์ ๋ณด์์ ์ฌํ ๊ณ ๋ ค ์ฌํญ์ด ์๋๋ผ ๊ฐ๋ฐ ๊ตฌ์กฐ์ ํ์์ ์ธ ๋ถ๋ถ์ด์ด์ผ ํฉ๋๋ค.
SAST, DAST, SCA์ ๊ฐ์ ์๋ํ๋ ๋๊ตฌ์ ๋์ ๋ฒ์์ ์๋ ์ฝ๋ ๊ฒํ ์ ๊น์ด ๋ฐ ์ปจํ ์คํธ ์ธ์์ ๊ฒฐํฉํจ์ผ๋ก์จ, ๊ธ๋ก๋ฒ ํ์ ์๋ฐ์คํฌ๋ฆฝํธ ์ํ๊ณ์ ๋ด์ฌ๋ ์ํ์ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์์ต๋๋ค. ๋ชจ๋ ๊ฐ๋ฐ์๊ฐ ์์ ์ ์ฝ๋ ๋ฌด๊ฒฐ์ฑ์ ์ฑ ์๊ฐ์ ๋๋ผ๋ ๋ณด์ ์ธ์ ๋ฌธํ๋ฅผ ์กฐ์ฑํ๋ ๊ฒ์ด ๊ถ๊ทน์ ์ธ ๋ชฉํ์ ๋๋ค. ์ด๋ฌํ ์ ์ ์ ์ธ ์์ธ๋ ๋จ์ํ ์นจํด๋ฅผ ๋ฐฉ์งํ๋ ๊ฒ์ ๋์ด ์ฌ์ฉ์ ์ ๋ขฐ๋ฅผ ๊ตฌ์ถํ๊ณ , ๊ธ๋ก๋ฒ ๊ณ ๊ฐ์ ์ํ ์ง์ ์ผ๋ก ๊ฒฌ๊ณ ํ๊ณ ํ๋ณต๋ ฅ ์๋ ์ํํธ์จ์ด๋ฅผ ๋ง๋๋ ๊ธฐ๋ฐ์ ๋ง๋ จํฉ๋๋ค.